// 注意：该项目中，在 redux 中存储的 token 是个对象，包含两个 token：
//1 token（登录成功的令牌）
// 2 refresh_token（刷新token，token过期时换取新的token）
import { Token } from '@/types/data'
import type { LoginAction } from '@/types/store'

const initialState: Token = {
	token: '',
	refresh_token: '',
}

// 指定参数和返回值的类型
// 说明：此处明确指定返回值类型，可以在返回值与指定类型不一致时给出明确的错误提示

export const login = (state = initialState, action: LoginAction): Token => {
	switch (action.type) {
		case 'login/token':
			return action.payload

		case 'login/logout':
			return initialState
      
		default:
			return state
	}
}
